Software piracy is a worldwide problem that costs software vendors large sums of money every year. One form of piracy, known as casual copying, is sharing and installing software on multiple computers, in violation of the end user license agreement. Product activation is one way to reduce this type of piracy.
Product activation commonly relies on the submission of an installation identification code and/or a hardware identifier to the software vendor. The software vendor in response returns an activation confirmation code. In a typical retail application of product activation, a unique product key is provided with each package of boxed software. Typically, after some grace period, (a period of time after installation of software during which the software will run without being activated), a customer must contact the software vendor to activate his copy of the software. Failure to do so frequently results in deactivation of the software or in degraded functionality of the software. Typically, the unique product key is used to generate a unique product identification code, which may be combined with a hashed hardware-related value to generate an installation identification code that is specific to the machine the software runs on. An activation confirmation that enables the software to run is typically returned to the customer. In this regard, an activation confirmation can also be a license file, or a binary that represents a license. At each login the licensed software checks to see that it is running on essentially the same hardware it was activated on. If the check fails, reactivation is required before the software will run again.
Corporate customers commonly purchase a volume license, because it is not feasible for corporate customers—who may have hundreds or thousands of machines in their domain—to contact the software vendor for each software copy installed to receive a machine-specific activation code. Typically, therefore, holders of volume licenses do not have to contact the software vendor to activate their software, because the software bypasses the activation requirement when a volume license key is detected. Hence, the same volume license key can be used on many different computers, none of which require activation in order for the software to run, before or after the grace period has expired. Although this feature makes volume license keys more convenient for a corporate customer to install software, it is also an attractive target for piracy.
Accordingly, there is a need for a mechanism for making pirating of volume license keys more difficult. The present invention satisfies this need.